home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
taropyon
/
hewin
/
ccisrc
/
dcn.cci
< prev
next >
Wrap
Text File
|
1993-11-30
|
10KB
|
418 lines
/*************************************************************************
* "dcn.cci" : DOS コンソール用
*************************************************************************/
char *_current_dcn;
char *_cns_console;
char _cns_comspec[128];
#define DCNPTR _current_dcn
#define CONSOLE _cns_console
#define COMSPEC _cns_comspec
#include "dcntool.cci"
#ifndef _ARCHIVE_IGN
# ifdef _ARCHIVE_LHX
# include "lhx.cci"
# else
# include "lha.cci"
# endif
#endif
#include "ish.cci"
#include "mktags.cci"
/*************************************************************************
* [COMMAND]ボタン
*************************************************************************/
int DcnUsr_commandMenu( char *dcn, int x, int y )
{
int ret;
char *obj;
char *mnu;
char *cmd;
obj = MNU_alloc(3);
MNU_setObj(obj, 0, MNU_NOR, 'D', "Directory" , NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'M', "MetaKey" , NULL, 2, NULL, NULL );
MNU_setObj(obj, 2, MNU_NOR, 'C', "CD Dictionary", NULL, 3, NULL, NULL );
mnu = MNU_open( x, y, MNUATT_EXIT, obj, "COMMAND" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1:
cmd = "DIR";
DCN_puts(dcn, cmd );
DCN_puts(dcn, "\r\n" );
DCN_exec(dcn, TRUE, cmd);
ret = DCNCMD_PROMPT;
break;
case 2:
DCN_metakey(dcn);
ret = 0;
break;
case 3:
DCN_puts(dcn, "\r\n" );
DCN_dic(dcn);
ret = DCNCMD_PROMPT;
break;
}
return (ret);
}
/*************************************************************************
* [PF-1] MENU
*************************************************************************/
int DcnUsr_func_01( char *dcn )
{
return DCN_menu( dcn );
}
/*************************************************************************
* [PF-2] DIR
*************************************************************************/
int DcnUsr_func_02( char *dcn )
{
int ret;
char *fdl;
if ( (fdl = FDL_open(0)) == NULL )
return (ERR);
FDL_set_title( fdl, "DIRECTORY");
FDL_set_wildcard( fdl, "*.*");
ret = FDL_start(fdl);
FDL_close(fdl);
DCN_puts(dcn, "\r\n" );
if ( ret == NORMAL )
{
#ifdef _TAROPYON_SYSTEM
DCN_exec( dcn, 0, "dr" );
#else
DCN_exec( dcn, 0, "dir /w" );
#endif
}
return (DCNCMD_PROMPT);
}
/*************************************************************************
* [PF-3] TOOL
*************************************************************************/
int DcnUsr_func_03( char *dcn )
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(2);
MNU_setObj(obj, 0, MNU_NOR, 'C' , "Copy", NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'D' , "Delete" , NULL, 2, NULL, NULL );
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
MNUATT_EXIT, obj, "TOOL" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1: ret = _dcn_copy(dcn); break;
case 2: ret = _dcn_delete(dcn); break;
}
return (NORMAL);
}
/*************************************************************************
* [PF-4] UTY
*************************************************************************/
int DcnUsr_func_04( char *dcn )
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(2);
MNU_setObj(obj, 0, MNU_NOR, 'M' , "Make \x22tags\x22 file" , NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'S' , "Search function defined position", NULL, 2, NULL, NULL );
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
MNUATT_EXIT, obj, "CCI UTILITY" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1: ret = _dcn_mktags(dcn); break;
case 2: ret = _dcn_searchFunction(dcn); break;
/* case 3: ret = _dcn_ciFind(dcn); break; */
default: ret = NORMAL; break;
}
return (ret);
}
/*************************************************************************
* [PF-5] SETUP
*************************************************************************/
int DcnUsr_func_05( char *dcn )
{
char *cns;
int ret;
char *mnu;
char *obj;
cns = DcnGetCnsPtr( dcn );
obj = MNU_alloc(2);
MNU_setObj(obj, 0, MNU_NOR, 'C' , "Change color table", NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'T' , "Save color table" , NULL, 2, NULL, NULL );
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
MNUATT_EXIT, obj, "SETUP" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1: DCN_changeColor( dcn ); break;
case 2: CnsUsr_saveColTbl( cns ); break;
}
return (NORMAL);
}
/*************************************************************************
* [PF-6] CD辞書検索
*************************************************************************/
int DcnUsr_func_06( char *dcn )
{
DCN_puts(dcn, "\r\n" );
DCN_dic(dcn);
return (DCNCMD_PROMPT);
}
/*************************************************************************
* [PF-7] LHa
*************************************************************************/
int DcnUsr_func_07( char *dcn )
{
#ifdef _ARCHIVE_IGN
return (NORMAL);
#else
# ifdef _ARCHIVE_LHX
return dcn_lhx_menu( dcn );
# else
return dcn_lha_menu( dcn );
# endif
#endif
}
/*************************************************************************
* [PF-8] ISH
*************************************************************************/
int DcnUsr_func_08( char *dcn )
{
return dcn_ish_menu( dcn );
}
/*************************************************************************
* [PF-9] MIEL
*************************************************************************/
int DcnUsr_func_09( char *dcn )
{
char cmd[256];
sprintf( cmd, "%s %s miel *.*", CONSOLE, COMSPEC );
DCN_exec( dcn, 1, cmd );
return (NORMAL);
}
/*************************************************************************
* [PF-10] ORICON
*************************************************************************/
int DcnUsr_func_10( char *dcn )
{
DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
C_MBLACK, C_DLGBASE, COLMIX(C_TIMEBOX,C_GRAY),
3, " ORICON を起動します。 \n HEwinに戻るには[EXIT]とタイプしてください。 " );
DCN_exec( dcn, 0, "ORICON" );
return (NORMAL);
}
/*************************************************************************
* [PF-11] HELP
*************************************************************************/
int DcnUsr_func_11( char *dcn )
{
DCN_help(dcn);
}
/*************************************************************************
* [PF-12] ▲▼
*************************************************************************/
int DcnUsr_func_12( char *dcn )
{
return DCN_resizeMax(dcn);
}
/*************************************************************************
* [SHIFT]+[PF-12] ▽△
*************************************************************************/
int DcnUsr_func_32( char *dcn )
{
return DCN_resizeMin(dcn);
}
#define DCNTBL_NUM_SCNSAVE (2)
char *DcnTbl_scnSave[DCNTBL_NUM_SCNSAVE] =
{
"ARICON", "ORICON"
};
/* 実行禁止 */
#define DCNTBL_NUM_IGNORE (3)
char *DcnTbl_ignore[DCNTBL_NUM_IGNORE] =
{
"386", "RUN386", "OAK"
};
/* 確認 */
#define DCNTBL_NUM_CHECK (2)
char *DcnTbl_check[DCNTBL_NUM_CHECK] =
{
"POFF", "REIPL"
};
char *DcnTbl_pfkey[24] =
{
"MENU", "DIR", "TOOL", "UTY", "SETUP",
"CD.DIC",
#ifdef _ARCHIVE_LHX
# ifdef _ARCHIVE_LHX
"LHx",
# else
"LHa",
# endif
#else
"",
#endif
"ISH", "MIEL", "ORICON",
"HELP", "▲▼",
"", "", "", "", "",
"", "", "", "", "",
"",
"▽△"
};
char *DcnTbl_metakey[26] =
{
/* A */ "assign ",
/* B */ "tar cvmf :0BACKUP ",
/* C */ "cmode ",
/* D */ "dtree ",
/* E */ "etom -playsub ctrl -rym 10 ",
/* F */ "files ",
/* G */ "grep ",
/* H */ "hcfilter ",
/* I */ "indent -ip1 -bl -cli4 -npcs -npsl -ncs -di12 ",
/* J */ "jgawk ",
/* K */ "kran ",
/* L */ "ldiff ",
/* M */ "mitags *.h *.c > tags",
/* N */ "nifsave ",
/* O */ "ORICON ",
/* P */ "mipp ",
/* Q */ "qw ",
/* R */ "rdoak2 ",
/* S */ "strings ",
/* T */ "tab -D4 ",
/* U */ "undel ",
/* V */ "vcopy ",
/* W */ "whereis ",
/* X */ "xcopy ",
/* Y */ "yacc ",
/* Z */ "zf "
};
/*************************************************************************
* DOS コンソール・システム初期化関数
*************************************************************************/
int DcnUsr_sysInit()
{
char *s;
int i;
if ( (s = getenv("COMSPEC")) == NULL )
strcpy( COMSPEC, "C:\\COMMAND.COM /C" );
else
sprintf( COMSPEC, "%s /C", s );
CONSOLE = "oricon";
/* 画面の保存が必要なコマンド */
for ( i = 0; i < DCNTBL_NUM_SCNSAVE; ++i )
DcnSetCommand( DcnTbl_scnSave[i], DCN_CMDSYS_SCNSAVE);
/* 実行を禁止するコマンド */
for ( i = 0; i < DCNTBL_NUM_IGNORE; ++i )
DcnSetCommand( DcnTbl_ignore[i], DCN_CMDSYS_IGNORE);
/* 実行前に確認を行うコマンド */
for ( i = 0; i < DCNTBL_NUM_CHECK; ++i )
DcnSetCommand( DcnTbl_check[i], DCN_CMDSYS_CHECK);
/* ネイティブ子プロセス */
DcnSetCommand("LHx" ,DCN_CMDSYS_EXP);
DcnSetCommand("he386p" ,DCN_CMDSYS_EXP);
DcnSetCommand("sz" ,DCN_CMDSYS_EXP);
DcnSetCommand("rz" ,DCN_CMDSYS_EXP);
DcnSetCommand("gsplay" ,DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
DcnSetCommand("cci" ,DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
DcnSetCommand("znsplay",DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
/* PFキー表示 */
for ( i = 0; i <24; ++i )
DCN_setPfkeyMsg( (i%12)+1, i/12, DcnTbl_pfkey[i] );
/* メタキー */
for ( i = 0; i <26; ++i )
DcnMetaKeySet('A'+i, DcnTbl_metakey[i]);
return (NORMAL);
}
int DcnUsr_sysTerm()
{
return (NORMAL);
}
/*************************************************************************
* DOS コマンド実行
*************************************************************************/
int DcnUsr_system( char *dcn, char *cmd )
{
DCN_system(dcn, cmd);
return (NORMAL);
}
#undef DCNPTR
#undef CONSOLE
#undef COMSPEC
#undef DCNTBL_NUM_SCNSAVE
#undef DCNTBL_NUM_IGNORE
#undef DCNTBL_NUM_CHECK